home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 October / Macformat17.cdr / Shareware City / Developers / MungeImage Source / DInstaller.p < prev    next >
Text File  |  1994-06-18  |  2KB  |  82 lines

  1. program DInstaller;
  2.     uses
  3.         EPPC, AppleEvents, RequiredEventSupport, MyDriver;
  4.  
  5.     const
  6.         Driver_Name = '.MungeImage';
  7.  
  8.     var
  9.         drvr_ref: integer;
  10.         quitNow: boolean;
  11.         have_opened: boolean;
  12.  
  13.     function DoODoc (fss: FSSpec): OSErr;
  14.         var
  15.             err: OSErr;
  16.             pb: ParamBlockRec;
  17.     begin
  18.         have_opened := true;
  19.         with pb do begin
  20.             ioCRefNum := drvr_ref;
  21.             csCode := 666;
  22.             ioMisc := @fss;
  23.         end; (* with *)
  24.         err := PBControlSync(@pb);
  25.         if err <> noErr then begin
  26.             SysBeep(10);
  27.         end; (* if *)
  28.         quitNow := true;
  29.         DoODoc := err;
  30.     end; (* DoODoc *)
  31.  
  32.     function DoOApp: OSErr;
  33.     begin
  34.         quitNow := true;
  35.         DoOApp := noErr;
  36.     end;
  37.  
  38.     function DoQuit: OSErr;
  39.     begin
  40.         quitNow := true;
  41.         DoQuit := noErr;
  42.     end; (* DoQuit *)
  43.  
  44.     var
  45.         junkbool: boolean;
  46.         event: EventRecord;
  47.         err: OSErr;
  48.         junk: OSErr;
  49.         junk_vref: integer;
  50.         response: longint;
  51. begin
  52.     if (Gestalt(gestaltSystemVersion, response) <> noErr) | (response < $700) then begin
  53.         ExitToShell;
  54.     end; (* if *)
  55.     err := InitAppleEvents(@DoOApp, @DoODoc, nil, @DoQuit);
  56.     if err = noErr then begin
  57.         drvr_ref := GetDriverRefNum(Driver_Name);
  58.         if drvr_ref <> 0 then begin
  59.             err := noErr;
  60.         end
  61.         else begin
  62.             err := InstallRAMDriver(Driver_Name, drvr_ref, true);
  63.         end;
  64.         if err = noErr then begin
  65.             quitNow := false;
  66.             while not quitNow do begin
  67.                 junkbool := WaitNextEvent(everyEvent, event, maxlongint, nil);
  68.                 case event.what of
  69.                     keyDown: 
  70.                         quitNow := true;
  71.                     kHighLevelEvent: 
  72.                         junk := AEProcessAppleEvent(event);
  73.                     otherwise
  74.                         ;
  75.                 end; (* case *)
  76.             end; (* while *)
  77.         end; (* if *)
  78.     end; (* if *)
  79.     if err <> noErr then begin
  80.         SysBeep(10);
  81.     end;
  82. end. (* DInstaller *)